---
root: .
title: Welcome
MAIN_TITLE: Revel - Go Web Framework
---
<!DOCTYPE html>
<html lang="en">
    <head>
        {% include head.html %}
    </head>
<body>

<!-- fork git hub -->
<a href="https://github.com/revel/revel" target="_blank" class="hidden-xs">
<img style="position: absolute; top: 0; right: 0; border: 0; z-index:40000;"
        src="img/forkme_right_orange_ff7600.png" alt="Fork me on GitHub"></a>

{% include topnav.html %}

<!-- Banner at top -->
<header class="hero-unit text-center">
    <div class="container">
        <div class="row">
            <div class="col-md-8 col-md-offset-2 m-t-50 m-b-40">
                <h1 class="title">
                    Revel
                </h1>
                <h1 class="lead m-t-20">
                    A flexible web framework for the Go language.
                </h1>
                <div class="m-b-20">
                    Latest Release:<br>
                    <b>
                        <a href="https://github.com/revel/revel/releases">v{{site.data.version.revel}}
                        </a>
                    </b> on {{site.data.version.date}}
                    <div>Go: v{{site.data.version.golang}} required</div>
                </div>
            </div>
        </div>
        <img src="img/gopher.png">
    </div>
</header>

<div class="container">
    <div class="row">
        <div class="col-md-12">
            <br/><h1 style="font-size: 25pt">Platform features</h1>
        </div>
    </div>
    <div class="row">
        <div class="col-md-4">
            <h1>Hot Code Reload</h1>
            <p>
                Edit, save, and refresh.  Revel compiles your code and templates for
                you, so you don't miss a beat.  Code doesn't compile?  It gives you a
                <a href="img/CompilationError.png">helpful description</a>.
                Run-time code panic?  Revel <a href="img/Panic.png">has you
                covered</a>.
            </p>
        </div>
        <div class="col-md-4">
            <h1>Comprehensive</h1>
            <p>
                Revel provides
                <a href="manual/routing.html">routing</a>,
                <a href="manual/parameters.html">parameter parsing</a>,
                <a href="manual/validation.html">validation</a>,
                <a href="manual/sessionflash.html">session/flash</a>,
                <a href="manual/templates.html">templating</a>,
                <a href="manual/cache.html">caching</a>,
                <a href="modules/jobs.html">job running</a>,
                <a href="modules/testing.html">a testing framework</a>,
                and even <a href="manual/i18n-messages.html">internationalization</a>.
            </p>
        </div>
        <div class="col-md-4">
            <h1>Flow Control</h1>
            <p>
                Revel is built around composable middleware called <a href="/manual/filters.html"><b>filters</b></a>,
                which implement nearly all request-processing
                functionality. Developers have the freedom to replace the default
                filters with custom implementations.
            </p>
        </div>
    </div>
    <div class="row">
        <div class="col-md-4">
            <h1>Migration Friendly</h1>
            <p>
                Already have an application started ?
                No problems, migrate easily to Revel by passing the path that you
                want your mux to handle to
                <a href="/manual/custom-mux.html"><b>Revels Mux</b></a>, and all requests for that path will be passed to
                that your Http muxer.
            </p>
        </div>
        <div class="col-md-4">
            <h1>Reusable MVC Components</h1>
            <p>
                Revel has <a href="/manual/modules.html">modules</a>. These are reusable MVC components that you can implement across all your projects.
                No need to copy and paste your code with these.
            </p>
        </div>
        <div class="col-md-4">
            <h1>Go mod Ready</h1>
            <p>
                Revel implements Go's builtin dependency management tool <a href="https://golang.org/cmd/go">go mod</a>.
                Making <a href="/manual/versions.html">consistent builds</a> a breeze.
            </p>
        </div>
    </div>
    <div class="row">
        <div class="col-md-4">
            <h1>Stateless</h1>
            <p>
                Revel provides primitives that keep the web tier stateless for
                predictable scaling. For example,
                <a href="/manual/sessionflash.html#Session"><b>session</b></a> data can be stored in the user
                cookie, and the <a href="manual/cache.html"><b>cache</b></a>
                is backed by a memcached cluster, redis or in-memory.
            </p>
        </div>
    </div>

    <!-- quickstart -->
    <section id="quickstart">
        <div class="row">
            <div class="col-md-6">
                <h1 style="font-size: 25pt">Quick Start</h1>
                <p>
                    Revel has some <a href="/examples/">sample applications</a> to demonstrate typical usage.
                </p>
                <p>The commands at right will:</p>
                <ul>
                    <li>Install and Build the Revel command-line tool</li>
                    <li>Install the sample applications</li>
                    <li>Run the Chat sample application</li>
                    <li>Open <a href="http://localhost:9000/">http://localhost:9000/</a></li>
                </ul>
                <p><a href="/examples/chat.html">Read how the chat demo is implemented.</a></p>
            </div>
            <div class="col-md-5 m-t-20">
                <script src="https://gist.github.com/manfordbenjamin/71c8a4aebcc4dc186d74bb652e97b974.js"></script>
            </div>
        </div>
    </section>

    <br />

    <!-- Overview -->
    <section id="teaser">
        <div class="page-header">
            <h1 style="font-size: 18pt;">Overview</h1>
        </div>
        <div class="row">
            <dl class="dl-horizontal">
                <dt><a href="manual/routing.html">Routing</a></dt>
                <dd>A simple declarative routing syntax.  Type-safe reverse routing.</dd>
                <dt><a href="manual/controllers.html">Controllers</a></dt>
                <dd>
                    Revel organizes endpoints into Controllers. They provide easy
                    data binding and form validation.
                </dd>
                <dt><a href="manual/templates.html">Templates</a></dt>
                <dd>Revel makes Go Templates simple to use at scale.</dd>
                <dt><a href="manual/interceptors.html">Interceptors</a></dt>
                <dd>
                    Register functionality to be called before or after actions.  They
                    can be activated per Controller.
                </dd>
                <dt><a href="manual/filters.html">Filters</a></dt>
                <dd>
                    More general functionality can be implemented with Filters.
                </dd>
            </dl>
        </div>

        <footer>
            <p>MIT License</p>
            <p>
              Gopher images remixed from those produced by
              <a href="http://www.golang.org">Go team</a>.
            </p>
        </footer>

    </div> <!-- /container -->
  </body>
</html>
